我們現在來準備開發環境吧!為了免除一開始的進入障礙,以太坊非常佛心的提供了線上版的官方 IDE 叫 Remix
。除了 Remix 之外,也可以使用你習慣的 IDE 來開發,例如 VS Code、ATOM 等等。
區塊說明
deprecated
的 Solidity 語法。ABI
(Application Binary Interface)
Bytecode
才會是對的。這個頁籤涵蓋「發佈合約」跟「執行合約」
Remix
介面來跟智能合約做互動,則可以把合約位址複製到 Load contract from Address
欄位中,然後按下 At Address
藍色按鈕。結果會出現在 Deployed Contracts
區塊中。JavaScript VM
環境:資料只存在記憶體中,並沒有連接到任何一個節點,內建五個測試帳戶,每個帳戶中都有 100 Ether 供開發使用。Injected Web3
環境:與 MetaMask 連接或類似 MetaMask 的服務Web3 Provider
環境:指定要連結的節點位址,例如:本機的私網路 http://localhost:8545
。選擇 Web3 Provider 環境會跳出彈跳視窗,這裡可以指定 RPC 伺服器的位置。如下圖所示:
選擇完要發佈的智能合約之後,就可以按下 Deploy
按鈕,就會建立一個智能合約的實例 (instance)。
練習題:試著把下面的內容複製到 Remix
,並進行智能合約的編譯、發佈、執行,來驗證自己到底吸收了多少吧。
pragma solidity ^0.4.17;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
發佈前
成功發佈後
這時候你可以使用它來呼叫智能合約的函式了。
呼叫 set
函式
記得如果要傳入字串,需要使用雙引號包起來,例如 "HelloWorld"
。不過這裡的範例允許傳入的是數字,就不用特別用雙引號包起來了。
呼叫 get
函式
用指令載入合約
使用範例
remix.loadgist('1b87ded5087790b67b5c4cd90a68065f')
remix.loadurl("https://github.com/alincode/30-days-smart-contract/src/01.sol")